使用 CDK 创建自定义 AWS IAM 策略
create custom AWS IAM policy using CDK
根据文档:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Policy.html
我可以创建自己的策略并附加到角色,但它不是创建新策略而是作为内联策略附加到角色。我想创建一个带有 arn 的自定义策略,以便我可以附加到我想要的其他角色
我尝试过的事情
new Policy(..)
new iam.PolicyStatement()
addStatements()
attachToRole()
请告诉我如何创建自定义托管策略
我应该在上一个问题中更具体一些,应该说使用 ManagedPolicy。这是您正在寻找的解决方案:
const role = new Role(this, 'MyRole', {
assumedBy: new ServicePrincipal('ec2.amazonaws.com'),
});
const policy = new ManagedPolicy(this, "MyManagedPolicy", {
statements: [
new PolicyStatement({
effect: Effect.ALLOW,
actions: ["s3:*"],
resources: ["*"]
})
],
roles: [role]
});
// Either use roles property inside ManagedPolicy or use attachToRole below,
// Both will yield the same result
// Creates a managed policy and then attaches the policy to role
// policy.attachToRole(role);
根据文档:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Policy.html
我可以创建自己的策略并附加到角色,但它不是创建新策略而是作为内联策略附加到角色。我想创建一个带有 arn 的自定义策略,以便我可以附加到我想要的其他角色
我尝试过的事情
new Policy(..)
new iam.PolicyStatement()
addStatements()
attachToRole()
请告诉我如何创建自定义托管策略
我应该在上一个问题中更具体一些,应该说使用 ManagedPolicy。这是您正在寻找的解决方案:
const role = new Role(this, 'MyRole', {
assumedBy: new ServicePrincipal('ec2.amazonaws.com'),
});
const policy = new ManagedPolicy(this, "MyManagedPolicy", {
statements: [
new PolicyStatement({
effect: Effect.ALLOW,
actions: ["s3:*"],
resources: ["*"]
})
],
roles: [role]
});
// Either use roles property inside ManagedPolicy or use attachToRole below,
// Both will yield the same result
// Creates a managed policy and then attaches the policy to role
// policy.attachToRole(role);